﻿///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// TetGen                                                                    //
//                                                                           //
// A Quality Tetrahedral Mesh Generator and A 3D Delaunay Triangulator       //
//                                                                           //
// Version 1.5                                                               //
// November 4, 2013                                                          //
//                                                                           //
// TetGen is freely available through the website: http://www.tetgen.org.    //
//   It may be copied, modified, and redistributed for non-commercial use.   //
//   Please consult the file LICENSE for the detailed copyright notices.     //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////
#include <string>
#include <fstream>
#include <iomanip>
#include "tetgen.h"

using namespace std;
using namespace Tetgen;


#define MAIN 0

#ifdef MAIN
int main(int argc, char *argv[])
{
	tetgenbehavior b;
	tetgenmesh m;

	tetgenio in, addin, bgmin;

	//解析命令行参数
	if (!b.parse_commandline(argc, argv))
	{
		exit(10);	//终止程序
	}

	// Read input files.
	if (b.Refine())				//是否对网格进行细化
	{ // -r
		if (!in.load_tetmesh(b.infilename,b.object))
		{
			exit(10);
		}
	}
	else							//
	{ // -p
		if (!in.load_plc(b.infilename,b.object))
		{
			exit(10);
		}
	}

	//是否加入额外的点
	if (b.insertaddpoints)
	{ // -i		// Try to read a .a.node file.
		addin.load_node(b.addinfilename);
	}

	//是否计算几何特性
	if (b.metric)
	{ // -m		// Try to read a background mesh in files .b.node, .b.ele.
		bgmin.load_tetmesh(b.bgmeshfilename, b.object);
	}

	//进行网格生成
	m.tetrahedralize(b, &in, NULL, &addin, &bgmin);

	m.putGuoMesh(0);

	return 0;
}

#endif